from core.layer import Layer
from core.neural_network import NeuralNetwork
from impl.bias_neuron import BiasNeuron

__author__ = 'Douglas'


class MultiLayerPerceptron(NeuralNetwork):
    def add_layer(self, neuron_count, input_function, activation_function):
        """
        :type neuron_count: int
        :type input_function: TransferFunction
        :type activation_function:
        """

        new_layer = Layer(neuron_count, input_function, activation_function)
        new_layer.neurons.append(BiasNeuron(activation_function))

        NeuralNetwork._add_layer(self, new_layer)
